package model

import (
	"github.com/jinzhu/gorm"
	"wangblog/utils/errmsg"
)

type Article struct {
	Category Category `gorm:"foreignkey:Cid"`
	gorm.Model
	Title string  `gorm:"type:varchar(100);not null" json:"title"`
	Cid int `gorm:"type:int;not null" json:"cid"`
	Desc string `gorm:"type:varchar(200)" json:"desc"`
	Content string `gorm:"type:longtext" json:"content"`
	Img string `gorm:"type:varchar(100)" json:"img"`
}


//新增文章
func CreateArt(data *Article)int{
	//data.Password=ScryptPw(data.Password)
	err:=db.Create(&data).Error
	if err!=nil{
		return errmsg.ERROR
	}
	return errmsg.SUCCSE
}

//todo 查询分类下地所有文章
func GetCateArt(id int,pageSize int,pageNum int)([]Article,int,int){
	var cateArtList []Article
	var total int
	err=db.Preload("Category").Limit(pageSize).Offset((pageNum-1)*pageSize).Where("cid=?",id).Find(&cateArtList).Count(&total).Error
	if err!=nil{
		return nil,errmsg.ERROR_CATE_NOT_EXIST,0
	}
	return cateArtList,errmsg.SUCCSE,total
}

//todo 查询单个文章
func GetArtInfo(id int)(Article,int){
	var art Article
	err=db.Preload("Category").Where("id=?",id).First(&art).Error
	if err!=nil{
		return art,errmsg.ERROR_ART_NOT_EXIST
	}
	return art,errmsg.SUCCSE

}


//todo 查询所有文章
func GetArt(pageSize int,pageNum int)([]Article,int,int){
	var articleList []Article
	var total int
	err=db.Preload("Category").Limit(pageSize).Offset((pageNum-1)*pageSize).Find(&articleList).Count(&total).Error
	if err!=nil &&err!=gorm.ErrRecordNotFound{
		return nil,errmsg.ERROR,0
	}
	return articleList,errmsg.SUCCSE,total
}

//编辑分类信息
func EditArt(id int,data *Article)int{
	var art Article
	var maps = make(map[string]interface{})
	maps["title"]=data.Title
	maps["cid"]=data.Cid
	maps["desc"]=data.Desc
	maps["content"]=data.Content
	maps["img"]=data.Img

	err=db.Model(&art).Where("id=?",id).Update(maps).Error
	if err!=nil{
		return errmsg.ERROR
	}
	return errmsg.SUCCSE
}


//删除文章
func DeleteArt(id int)int{
	err=db.Where("id=?",id).Delete(&Article{}).Error
	if err!=nil{
		return errmsg.ERROR
	}
	return errmsg.SUCCSE
}